Open Multithreaded Transactions: A Transaction Model for Concurrent Object-Oriented Programming
نویسنده
چکیده
Modern programming languages provide features that allow a programmer to express concurrency in an application by using active objects, i.e. objects with their own thread of control, and distribution. Concurrent systems can be classified into cooperative systems, where individual components collaborate, share results and work for a common goal, and competitive systems, where the individual components are not aware of each other and compete for shared resources. Programming languages address collaboration and competition by providing means for communication and synchronization among active objects. The realization of complex object-oriented systems often needs sophisticated and elaborate concurrency features which may go beyond the traditional concurrency control associated with separate method calls. A transaction groups together a sequence of actions, and can therefore encapsulate complex behavior and embrace groups of objects and method calls. Transactions structure the dynamic system execution as opposed to the static structuring based on objects. Because of the ACID properties, transactions are able to hide the effects of concurrency and at the same time act as firewalls for errors, making them appropriate building blocks for structuring reliable distributed systems. This thesis investigates how transactions can be integrated with concurrent object-oriented programming, and in particular, how transactions can be made available to an application programmer at the programming language level. In the first part of the thesis, existing transaction models are reviewed and their suitability for concurrent programming languages is discussed. The analysis of existing models of multithreaded transactions shows that they either give too much freedom to threads and do not control their participation in transactions, or unnecessarily restrict the computational model by assuming that only one thread can enter a transaction. Hence, a significant part of this thesis is devoted to the establishment of a new transaction model named Open Multithreaded Transactions, providing features for controlling and structuring not only accesses to objects, as usual in transaction systems, but also threads taking part in transactions. The model allows several threads to enter the same transaction in order to perform a joint activity. It provides a flexible way of manipulating threads executing inside a transaction by allowing them to be forked and terminated, but it restricts their behavior in order to guarantee correctness of transaction nesting and isolation among transactions. The open multithreaded transaction model incorporates disciplined exception handling adapted to nested transactions. It allows individual threads to perform forward error recovery by handling an abnormal situation locally, and promotes a defensive approach for developing transactional objects, so that errors are detected early and dealt with inside the transaction. If local handling fails, the transaction support applies backward error recovery and reverses the system to its “initial” state.
منابع مشابه
Exception Handling in Open Multithreaded Transactions
This paper describes a model for providing transaction support for object-oriented concurrent programming languages. In order to achieve seamless integration, the use of the concurrency features provided by the programming language should not be restricted inside a transaction. A transaction model that meets this requirement is presented. Threads inside such a transaction may spawn new threads,...
متن کاملPorting OMTTs to CORBA original.fm
The Common Object Request Broker Architecture standardizes a platformand programming-language-independent distributed object computing environment. It also provides a standard for several distributed services. The Object Transaction Service provides an object-oriented framework for distributed transaction processing, especially for Online Transaction Processing in business applications. The cur...
متن کاملCombining Object-oriented Systems and Open Transaction Processing
Atomic transactions are now a familiar paradigm for distributed programming and have been provided in a number of object-oriented languages. Much e ort has also been expended on developing open transaction processing systems which support distributed transactions involving multivendor database systems. This paper addresses a number of issues that arise in combining objectoriented distributed pr...
متن کاملConcurrent Transactions and Communicators: Extensible Synchronization Mechanisms for Distributed Programming
Object-Oriented concurrency model has been recognized as good programming paradigm in concurrent and distributed programming. However, concurrency and synchronization primitives provided by the concurrent object-oriented languages are not expressive enough for complicated communication and synchronization schemes that are required by practical applications. The article proposes a highly extensi...
متن کاملDesigning Modularity Architecture for Multithread Programming
Multithreaded Object-Oriented Programming in concurrency environment using object-oriented technology is a complex activity. Programmers need to be aware of issues unrelated to their domain of problem, and are often unprepared for the challenges of the concurrent object-oriented programming brings. The interaction of their components becomes more complex, and makes it difficult to validate the ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001